{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Vertical takeoff and landing aircraft\n",
    "\n",
    "This notebook demonstrates the use of the python-control package for analysis and design of a controller for a vectored thrust aircraft model that is used as a running example through the text *Feedback Systems* by Astrom and Murray. This example makes use of MATLAB compatible commands. \n",
    "\n",
    "Additional information on this system is available at\n",
    "\n",
    "http://www.cds.caltech.edu/~murray/wiki/index.php/Python-control/Example:_Vertical_takeoff_and_landing_aircraft"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## System Description\n",
    "This example uses a simplified model for a (planar) vertical takeoff and landing aircraft (PVTOL), as shown below:\n",
    "\n",
    "![PVTOL diagram](http://www.cds.caltech.edu/~murray/wiki/images/7/7d/Pvtol-diagram.png)\n",
    "\n",
    "![PVTOL dynamics](http://www.cds.caltech.edu/~murray/wiki/images/b/b7/Pvtol-dynamics.png)\n",
    "\n",
    "The position and orientation of the center of mass of the aircraft is denoted by $(x,y,\\theta)$,  $m$ is the mass of the vehicle, $J$ the moment of inertia, $g$ the gravitational constant and $c$ the damping coefficient. The forces generated by the main downward thruster and the maneuvering thrusters are modeled as a pair of forces $F_1$ and $F_2$ acting at a distance $r$ below the aircraft (determined by the geometry of the thrusters).\n",
    "\n",
    "Letting $z=(x,y,\\theta, \\dot x, \\dot y, \\dot\\theta$), the equations can be written in state space form as:\n",
    "$$\n",
    "\\frac{dz}{dt} = \\begin{bmatrix}\n",
    "                       z_4 \\\\\n",
    "                       z_5 \\\\\n",
    "                       z_6 \\\\\n",
    "                       -\\frac{c}{m} z_4 \\\\\n",
    "                       -g- \\frac{c}{m} z_5 \\\\\n",
    "                       0\n",
    "                  \\end{bmatrix}\n",
    "                  +\n",
    "                  \\begin{bmatrix}\n",
    "                       0 \\\\\n",
    "                       0 \\\\\n",
    "                       0 \\\\\n",
    "                       \\frac{1}{m} \\cos \\theta F_1 + \\frac{1}{m} \\sin \\theta F_2 \\\\\n",
    "                       \\frac{1}{m} \\sin \\theta F_1 + \\frac{1}{m} \\cos \\theta F_2 \\\\\n",
    "                       \\frac{r}{J} F_1\n",
    "                  \\end{bmatrix}\n",
    "$$\n",
    "\n",
    "## LQR state feedback controller\n",
    "This section demonstrates the design of an LQR state feedback controller for the vectored thrust aircraft example. This example is pulled from Chapter 6 (Linear Systems, Example 6.4) and Chapter 7 (State Feedback, Example 7.9) of [Astrom and Murray](https://fbsbook.org). The python code listed here are contained the the file pvtol-lqr.py.\n",
    "\n",
    "To execute this example, we first import the libraries for SciPy, MATLAB plotting and the python-control package:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from numpy import *             # Grab all of the NumPy functions\n",
    "from matplotlib.pyplot import * # Grab MATLAB plotting functions\n",
    "from control.matlab import *    # MATLAB-like functions\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The parameters for the system are given by"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "m = 4                         # mass of aircraft\n",
    "J = 0.0475                    # inertia around pitch axis\n",
    "r = 0.25                      # distance to center of force\n",
    "g = 9.8                       # gravitational constant\n",
    "c = 0.05                      # damping factor (estimated)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Choosing equilibrium inputs to be $u_e = (0, mg)$, the dynamics of the system $\\frac{dz}{dt}$, and their linearization $A$ about equilibrium point $z_e = (0, 0, 0, 0, 0, 0)$ are given by\n",
    "$$\n",
    "\\frac{dz}{dt} = \\begin{bmatrix}\n",
    "                       z_4 \\\\\n",
    "                       z_5 \\\\\n",
    "                       z_6 \\\\\n",
    "                       -g \\sin z_3 -\\frac{c}{m} z_4 \\\\\n",
    "                       g(\\cos z_3 - 1)- \\frac{c}{m} z_5 \\\\\n",
    "                       0\n",
    "                  \\end{bmatrix}\n",
    "\\qquad\n",
    "A = \\begin{bmatrix}\n",
    "       0 & 0 & 0 &1&0&0\\\\\n",
    "       0&0&0&0&1&0 \\\\\n",
    "       0&0&0&0&0&1 \\\\\n",
    "       0&0&-g&-c/m&0&0 \\\\\n",
    "       0&0&0&0&-c/m&0 \\\\\n",
    "       0&0&0&0&0&0\n",
    "    \\end{bmatrix}\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# State space dynamics\n",
    "xe = [0, 0, 0, 0, 0, 0]         # equilibrium point of interest\n",
    "ue = [0, m*g]                   # (note these are lists, not matrices)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Dynamics matrix (use matrix type so that * works for multiplication)\n",
    "# Note that we write A and B here in full generality in case we want\n",
    "# to test different xe and ue.\n",
    "A = matrix(\n",
    "   [[ 0,    0,    0,    1,    0,    0],\n",
    "    [ 0,    0,    0,    0,    1,    0],\n",
    "    [ 0,    0,    0,    0,    0,    1],\n",
    "    [ 0, 0, (-ue[0]*sin(xe[2]) - ue[1]*cos(xe[2]))/m, -c/m, 0, 0],\n",
    "    [ 0, 0, (ue[0]*cos(xe[2]) - ue[1]*sin(xe[2]))/m, 0, -c/m, 0],\n",
    "    [ 0,    0,    0,    0,    0,    0 ]])\n",
    "\n",
    "# Input matrix\n",
    "B = matrix(\n",
    "   [[0, 0], [0, 0], [0, 0],\n",
    "    [cos(xe[2])/m, -sin(xe[2])/m],\n",
    "    [sin(xe[2])/m,  cos(xe[2])/m],\n",
    "    [r/J, 0]])\n",
    "\n",
    "# Output matrix \n",
    "C = matrix([[1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0]])\n",
    "D = matrix([[0, 0], [0, 0]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To compute a linear quadratic regulator for the system, we write the cost function as\n",
    "$$ J = \\int_0^\\infty (\\xi^T Q_\\xi \\xi + v^T Q_v v) dt,$$\n",
    "\n",
    "where $\\xi = z - z_e$ and $v = u - u_e$ represent the local coordinates around the desired equilibrium point $(z_e, u_e)$. We begin with diagonal matrices for the state and input costs:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "Qx1 = diag([1, 1, 1, 1, 1, 1])\n",
    "Qu1a = diag([1, 1])\n",
    "(K, X, E) = lqr(A, B, Qx1, Qu1a); K1a = matrix(K)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This gives a control law of the form $v = -K \\xi$, which can then be used to derive the control law in terms of the original variables:\n",
    "\n",
    "\n",
    "  $$u = v + u_e = - K(z - z_d) + u_d.$$\n",
    "where $u_e = (0, mg)$ and $z_d = (x_d, y_d, 0, 0, 0, 0)$\n",
    "\n",
    "The way we setup the dynamics above, $A$ is already hardcoding $u_d$, so we don't need to include it as an external input. So we just need to cascade the $-K(z-z_d)$ controller with the PVTOL aircraft's dynamics to control it. For didactic purposes, we will cheat in two small ways:\n",
    "\n",
    "- First, we will only interface our controller with the linearized dynamics. Using the nonlinear dynamics would require the `NonlinearIOSystem` functionalities, which we leave to another notebook to introduce.\n",
    "2. Second, as written, our controller requires full state feedback ($K$ multiplies full state vectors $z$), which we do not have access to because our system, as written above, only returns $x$ and $y$ (because of $C$ matrix). Hence, we would need a state observer, such as a Kalman Filter, to track the state variables. Instead, we assume that we have access to the full state.\n",
    "\n",
    "The following code implements the closed loop system:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Our input to the system will only be (x_d, y_d), so we need to\n",
    "# multiply it by this matrix to turn it into z_d.\n",
    "Xd = matrix([[1,0,0,0,0,0],\n",
    "             [0,1,0,0,0,0]]).T\n",
    "\n",
    "# Closed loop dynamics\n",
    "H = ss(A-B*K,B*K*Xd,C,D)\n",
    "\n",
    "# Step response for the first input\n",
    "x,t = step(H,input=0,output=0,T=linspace(0,10,100))\n",
    "# Step response for the second input\n",
    "y,t = step(H,input=1,output=1,T=linspace(0,10,100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(t,x,'-',t,y,'--')\n",
    "plot([0, 10], [1, 1], 'k-')\n",
    "ylabel('Position')\n",
    "xlabel('Time (s)')\n",
    "title('Step Response for Inputs')\n",
    "legend(('Yx', 'Yy'), loc='lower right')\n",
    "show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The plot above shows the $x$ and $y$ positions of the aircraft when it is commanded to move 1 m in each direction. The following shows the $x$ motion for control weights $\\rho = 1, 10^2, 10^4$. A higher weight of the input term in the cost function causes a more sluggish response. It is created using the code:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Look at different input weightings\n",
    "Qu1a = diag([1, 1])\n",
    "K1a, X, E = lqr(A, B, Qx1, Qu1a)\n",
    "H1ax = H = ss(A-B*K1a,B*K1a*Xd,C,D)\n",
    "\n",
    "Qu1b = (40**2)*diag([1, 1])\n",
    "K1b, X, E = lqr(A, B, Qx1, Qu1b)\n",
    "H1bx = H = ss(A-B*K1b,B*K1b*Xd,C,D)\n",
    "\n",
    "Qu1c = (200**2)*diag([1, 1])\n",
    "K1c, X, E = lqr(A, B, Qx1, Qu1c)\n",
    "H1cx = ss(A-B*K1c,B*K1c*Xd,C,D)\n",
    "\n",
    "[Y1, T1] = step(H1ax, T=linspace(0,10,100), input=0,output=0)\n",
    "[Y2, T2] = step(H1bx, T=linspace(0,10,100), input=0,output=0)\n",
    "[Y3, T3] = step(H1cx, T=linspace(0,10,100), input=0,output=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(T1, Y1.T, 'b-', T2, Y2.T, 'r-', T3, Y3.T, 'g-')\n",
    "plot([0 ,10], [1, 1], 'k-')\n",
    "title('Step Response for Inputs')\n",
    "ylabel('Position')\n",
    "xlabel('Time (s)')\n",
    "legend(('Y1','Y2','Y3'),loc='lower right')\n",
    "axis([0, 10, -0.1, 1.4])\n",
    "show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Lateral control using inner/outer loop design\n",
    "This section demonstrates the design of loop shaping controller for the vectored thrust aircraft example. This example is pulled from Chapter 11 (Frequency Domain Design) of [Astrom and Murray](https://fbsbook.org). \n",
    "\n",
    "To design a controller for the lateral dynamics of the vectored thrust aircraft, we make use of a \"inner/outer\" loop design methodology. We begin by representing the dynamics using the block diagram\n",
    "\n",
    "<img src=http://www.cds.caltech.edu/~murray/wiki/images/3/3f/Pvtol-lateraltf.png>\n",
    "where\n",
    "<img src=http://www.cds.caltech.edu/~murray/wiki/images/math/3/6/4/364e56f7893637e12edb0e0ac6c45722.png>  \n",
    "The controller is constructed by splitting the process dynamics and controller into two components: an inner loop consisting of the roll dynamics $P_i$ and control $C_i$ and an outer loop consisting of the lateral position dynamics $P_o$ and controller $C_o$.\n",
    "<img src=http://www.cds.caltech.edu/~murray/wiki/images/f/f1/Pvtol-nested-1.png>\n",
    "The closed inner loop dynamics $H_i$ control the roll angle of the aircraft using the vectored thrust while the outer loop controller $C_o$ commands the roll angle to regulate the lateral position.\n",
    "\n",
    "The following code imports the libraries that are required and defines the dynamics:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib.pyplot import * # Grab MATLAB plotting functions\n",
    "from control.matlab import *    # MATLAB-like functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# System parameters\n",
    "m = 4                         # mass of aircraft\n",
    "J = 0.0475                    # inertia around pitch axis\n",
    "r = 0.25                      # distance to center of force\n",
    "g = 9.8                       # gravitational constant\n",
    "c = 0.05                      # damping factor (estimated)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Transfer functions for dynamics\n",
    "Pi = tf([r], [J, 0, 0])       # inner loop (roll)\n",
    "Po = tf([1], [m, c, 0])       # outer loop (position)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For the inner loop, use a lead compensator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "k = 200\n",
    "a = 2\n",
    "b = 50\n",
    "Ci = k*tf([1, a], [1, b])     # lead compensator\n",
    "Li = Pi*Ci"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The closed loop dynamics of the inner loop, $H_i$, are given by"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "Hi = parallel(feedback(Ci, Pi), -m*g*feedback(Ci*Pi, 1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, we design the lateral compensator using another lead compenstor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now design the lateral control system\n",
    "a = 0.02\n",
    "b = 5\n",
    "K = 2\n",
    "Co = -K*tf([1, 0.3], [1, 10])         # another lead compensator\n",
    "Lo = -m*g*Po*Co"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The performance of the system can be characterized using the sensitivity function and the complementary sensitivity function:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "L = Co*Hi*Po\n",
    "S = feedback(1, L)\n",
    "T = feedback(L, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "t, y = step(T, T=linspace(0,10,100))\n",
    "plot(y, t)\n",
    "title(\"Step Response\")\n",
    "grid()\n",
    "xlabel(\"time (s)\")\n",
    "ylabel(\"y(t)\")\n",
    "show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The frequency response and Nyquist plot for the loop transfer function are computed using the commands"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bode(L)\n",
    "show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "nyquist(L, (0.0001, 1000))\n",
    "show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "gangof4(Hi*Po, Co)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
